/**
 * 文件名：AppRawController.java
 * 功能：原始响应格式的演示控制器（用于测试和对比）
 * 作用：演示不使用统一响应格式直接返回数据，以及异常处理机制
 * 模块关系：
 *   - 独立于 AppController，不依赖 Mapper 和 Entity
 *   - 用于对比带 ApiResponse 和不带 ApiResponse 的响应差异
 *   - 测试 GlobalExceptionHandler 的异常拦截功能
 * 作者：白永康
 * 学号：2501210209
 */
package com.example.demo.app;

import org.springframework.web.bind.annotation.*;
import java.util.*;

/**
 * 原始响应格式演示控制器
 * 用于演示不使用统一响应封装的情况
 */
@RestController
@RequestMapping("/api/apps-raw")
public class AppRawController {

    /**
     * 直接返回列表（不使用 ApiResponse 封装）
     * 路径：GET /api/apps-raw
     * @return 直接返回 Map 列表，用于对比统一响应格式
     */
    @GetMapping
    public List<Map<String, Object>> list() {
        List<Map<String, Object>> out = new ArrayList<>();
        Map<String, Object> a = new HashMap<>();
        a.put("id", 1);
        a.put("name", "智能客服助手");
        out.add(a);
        return out;
    }

    /**
     * 故意抛出异常，测试全局异常处理
     * 路径：GET /api/apps-raw/boom
     * @return 无正常返回，会被 GlobalExceptionHandler 拦截处理
     */
    @GetMapping("/boom")
    public Object boom() {
        throw new RuntimeException("演示：服务器炸了");
    }
}
